// Copyright (c) 2021 Presto Labs Pte. Ltd.
// Author: leon

#pragma once

#include <map>
#include <memory>
#include <mutex>
#include <string>
#include <utility>
#include <vector>

#include "coin2/exchange/base/market/market_exchange_api.h"

namespace coin2::exchange::base::feed {
namespace impl {

class SymbolUpdater {
 public:
  explicit SymbolUpdater(const MarketExchangeApi& mea)
      : mea_(mea) {}
  virtual ~SymbolUpdater() = default;
  virtual std::vector<std::pair<std::string, std::string>> GetUpdatedNormSymbols(
      const std::string& norm_template) = 0;

 private:
  MarketExchangeApi mea_;
};
}  // namespace impl
using impl::SymbolUpdater;
}  // namespace coin2::exchange::base::feed
